Learning a mac address

ABSTRACT

A method and an edge device for learning a Medium Access Control (MAC) address are provided. According to an example, based on a request message from a first node to a second node, a session cache item is created in the edge device. The session cache item includes: IP addresses of the first and second nodes, and a first relationship between a MAC address of the first node and an output port corresponding to the first node. Based on a response message from the second node to the first node, the session cache item is updated to include a second relationship between a MAC address of the second node and an output port corresponding to the second node. The first and second relationships are then provided to a data plane of the edge device to facilitate data packet forwarding between the first node and the second node.

BACKGROUND

In order to provide better services, service providers usually deploymultiple data centers in different locations, so as to implement loadbalancing and achieve high availability, and further to realize randommigration of virtual machines between the data centers. Since themigration of the virtual machines is transparent to users, InternetProtocol (IP) addresses and Media Access Control (MAC) addresses of thevirtual machines should not change. Therefore, layer-2 interconnectionbetween data centers located in different locations is desirable.

BRIEF DESCRIPTION OF THE DRAWINGS

Features of the present disclosure are illustrated by way of example andnot limited in the following figure(s), in which like numerals indicatelike elements, in which:

FIG. 1 is a schematic diagram illustrating a conventional networkstructure of layer-2 interconnection of data centers.

FIG. 2 is a schematic diagram illustrating a conventional MAC addresslearning process.

FIG. 3 is a flowchart illustrating a method according to an example ofthe present disclosure.

FIG. 4 is a schematic diagram illustrating a method according to anexample of the present disclosure.

FIG. 5 is a schematic diagram illustrating a method according to anotherexample of the present disclosure.

FIG. 6 is a schematic diagram illustrating a structure of an edge deviceaccording to an example of the present disclosure.

FIG. 7 is a schematic diagram illustrating a structure of an edge deviceaccording to another example of the present disclosure.

DETAILED DESCRIPTION

Hereinafter, the present disclosure will be described in further detailwith reference to the accompanying drawings and examples.

For simplicity and illustrative purposes, the present disclosure isdescribed by referring to examples. In the following description,numerous specific details are set forth in order to provide a thoroughunderstanding of the present disclosure. It will be readily apparenthowever, that the present disclosure may be practiced without limitationto these specific details. In other instances, some methods andstructures have not been described in detail so as not to unnecessarilyobscure the present disclosure. As used herein, the term “includes”means includes but not limited to, the term “including” means includingbut not limited to. The term “based on” means based at least in part on.In addition, the terms “a” and “an” are intended to denote at least oneof a particular element.

FIG. 1 is a schematic diagram illustrating a conventional networkstructure of a layer-2 interconnection of data centers. In the networkstructure shown in FIG. 1, there are three sites: site A, site B, andsite C. A data center is deployed in each site and is connected to an IPcore network through an Edge Device (ED) of the data center, so as torealize layer-2 interconnection of the data centers.

In the network structure shown in FIG. 1, each ED needs to learn the MACaddresses of all of the hosts in all of the Virtual Private Networks(VPNs) of each site. An ED may be a network device such as a router,routing switch, switch, multiplexer etc. A host is a node that isconnected to the network via an ED, such as a host computing device,routing device, and portable communications device etc.

FIG. 2 is a schematic diagram illustrating a conventional MAC addresslearning process. As shown in FIG. 2, it is supposed that a MAC addressforwarding table in each of Edge Devices ED1, ED2, and ED3 shown in FIG.2 is initially null. Consider the case where host A in VPN 1 of ED1needs to communicate with host B in VPN 1 of ED3. The MAC address ofhost A is MAC_A, and the IP address of host A is IP_A (e.g., 1.1.1.1).Host A knows only the IP address of host B (i.e., IP_B, e.g., 1.1.1.2)but not the MAC address of host B. Thus, host A needs to learn the MACaddress of host B in order to communicate with host B using the MACaddress of host B.

The MAC address learning process according to an example in conventionalsystems is as follows.

Firstly, host A broadcasts an Address Resolution Protocol (ARP)requestmessage in a Virtual Local Area Network (VLAN) to learn the MAC addressof host B; see 202. The ARP is a protocol for resolution of networklayer (layer-3) addresses into link layer (layer-2) addresses, A TargetIP address in the ARP request message is IP_B, a Sender IP address inthe ARP request message is IP_A, a Sender MAC address is MAC_A. TheSender of the ARP request message is a device that initially transmitsthe ARP request message, which is host A in this example.

The ARP request message arrives at ED1 of the site where host A isinitially located; see 204 in FIG. 2. When the ARP request messagebroadcasted by host A is received, ED1 learns the Sender MAC address ofthe ARP request message (i.e., MAC_A), and advertises the learnt MAC_Ato ED2 and ED3. Any suitable protocol may be used for the advertisement,such as the Intermediate System to Intermediate System (ISIS) protocoletc. ED1 adds an item or entry about MAC_A in a local MAC addressforwarding table that includes: VPN is VPN1, MAC address is MAC_A,output port is Port1 (the port through which the ARP request message wasreceived by ED1, since host A and ED1 are in the same site, and Port1 isa local port at ED1); see 206 in FIG. 2.

The ARP request message also arrives at ED2 and ED3; see 208 and 210 inFIG. 2 respectively. After the ARP request message is received, ED2 andED3 broadcast the ARP request message to hosts under them; see 212 and214 in FIG. 2 respectively.

In addition, ED2 and ED3 learn the MAC_A advertised by ED1 using ISIS.After MAC_A advertised by ED1 using ISIS is learnt, ED2 and ED3respectively add an item about MAC_A in their respective local MACaddress forwarding tables. More specifically, the item about MAC_A addedby ED2 in its local MAC address forwarding table includes: VPN is VPN1,MAC address is MAC_A, output port is Link1 (Link1 denotes the portthrough which MAC_A was learnt by ED2, since ED1 and ED2 are indifferent sites, this port corresponds to a VLAN link between ED2 andED1); see 216 in FIG. 2. The item about MAC_A added by ED3 in the localMAC address forwarding table of ED3 includes: VPN is VPN1, MAC addressis MAC_A, output port is Link2 (Link2 denotes the port through whichMAC_A was learnt by ED3, since ED1 and ED3 are in different sites, thisport corresponds to a VLAN link between ED3 and ED1); see 218 in FIG. 2.

After the ARP request message is received, host B finds that the TargetIP address of the ARP request message is the IP address of host B andreturns an ARP response message; see 220 in FIG. 2. A Target MAC addressof the ARP response message is MAC_A, a Target IP address is IP_A, aSender IP address is IP_B and a Sender MAC address is MAC_B, wherein theSender of the ARP response message is a device that initiates the ARPresponse message.

For other hosts such as host C, since the Target IP address of the ARPrequest message is not their IP address, they do not respond to the ARPrequest message.

The ARP response message transmitted by host B arrives at ED3 of thesite where host B is located. When the ARP response message is received,ED3 learns the Sender MAC address (i.e., MAC_B) of the ARP responsemessage, and adds an item about MAC_B in the local MAC addressforwarding table of ED3: VPN is VPN1, MAC address is MAC_B, output portis Port1 (which is a local port through which the ARP response messagewas received by ED3); see 222 in FIG. 2.

ED3 searches the local MAC address forwarding table for an output portcorresponding to the Target IP address. Since the Target IP address isthe IP address of host A, according to the item added by ED3 in thelocal MAC address forwarding table according to the ARP request messagebroadcasted by host A, ED3 is able to determine that the output port forthe Target IP address is Link2; see 218 in FIG. 2 again. Thus, ED3transmits the ARP response message through Link2. At the same time, ED3advertises MAC_B to ED1 and ED2 using ISIS, such that ED1 and ED2 mayadd an item about MAC_B in their local MAC address forwarding tables;see 224 and 226 in FIG. 2.

After MAC_B advertised by ED3 is learnt, ED1 adds an item about MAC_B inthe local MAC address forwarding table: VPN is VPN1, MAC address isMAC_B, output port is Link2 (the port through which MAC_B was learnt byED1, in particular, the port corresponds to a virtual Ethernet linkbetween ED1 and ED3); see 224 in FIG. 2.

After the ARP response message transmitted by ED3 is received, ED1searches the local MAC address forwarding table for an output portcorresponding to the Target IP address. According to the item 206 addedby ED1 in the local MAC address forwarding table according to the ARPrequest message broadcasted by host A, ED1 determines that the outputport for the Target IP address is Port1. Thus, ED1 transmits the ARPresponse message through Port1 to host A.

After the ARP response message is received, host A knows the MAC addressof the Target, i.e., host B. Thereafter, host A may initiatecommunication with host B.

Now, the MAC address learning process in the example in FIG. 2 isfinished.

In the example in FIG. 2, network nodes or entities that really need tocommunicate are host A and host B. Therefore, only ED1 in the site ofhost A and ED3 in the site of host B need to learn the MAC address ofhost A and host B respectively. ED2 does not need to learn the MACaddress of host A and the MAC address of host B. In other words, ED1does not need to advertise MAC_A to ED2 using ISIS, and ED3 does notneed to advertise MAC_B to ED2 using ISIS, either. Further, ED2 does notneed to create items about MAC addresses of host A and host B in thelocal MAC address forwarding table; see 216 and 226 in FIG. 2. It can beseen that, the existing MAC address learning method according to FIG. 2greatly wastes resources of ED2 which stores unnecessary MAC addressitems in its forwarding table. In addition, since ED1 advertises MAC_Ato ED2 using ISIS and ED3 advertises MAC_B to ED2, resources of otherEDs are also wasted.

In contrast to the above, one or more examples of the present disclosureprovide a method and an edge device for learning a MAC address, so as toincrease resource utilization in an ED and reduce unnecessary storage ofMAC address items.

According to an example, disclosed herein is a method for learning a MACaddress, applied in an ED in a layer-2 virtual interconnection networkof data centers. The method includes:

-   based on an ARP request message from a first node to a second node,    creating in a control plane of the ED a session cache item, wherein    the session cache item includes: (i) IP address of the second    node, (ii) IP address of the first node, and (iii) a first    relationship between a MAC address of the first node and an output    port corresponding to the MAC address of the first node;-   based on an ARP response message from the second node to the first    node, updating the session cache item having the IP address of the    first node and the IP address of the second node, wherein the    updated session cache item further includes: (iv) a second    relationship between a MAC address of the second node and an output    port corresponding to the MAC address of the second node,-   forwarding the ARP response message via the output port    corresponding to the MAC address of the first node in the first    relationship in the session cache item; and-   providing the first relationship and the second relationship to a    data plane of the edge device to facilitate data packet forwarding    between the first node and the second node.

According to another example, disclosed herein is a method for learninga MAC address, applied to an ED in a layer-2 interconnection betweendata centers. The method including:

-   capturing an ARP request message, creating in a control plane a    session cache item containing: a Target IP address of the ARP    request message, a Sender IP address of the ARP request message, a    Sender MAC address of the ARP request message, and an output port    corresponding to the Sender MAC address;-   capturing an ARP response message, finding, in created session cache    items, a session cache item containing: a Target IP address and a    Sender IP address of the ARP response message, adding a Sender MAC    address of the ARP response message and an output port corresponding    to the Sender MAC address of the ARP response message to the session    cache item found, forwarding the ARP response message through the    output port corresponding to the Sender MAC address of the ARP    request message in the session cache item; and-   providing or issuing a relationship between the Sender MAC address    and the output port of the ARP request message in the session cache    item and a relationship between the Sender MAC address and the    output port of the ARP response message in the session cache item to    a data plane to instruct or facilitate data packet forwarding; or-   advertising a local MAC address in the session cache item through    the output port corresponding to a remote MAC address in the session    cache item, receiving a MAC address advertised by another ED, and    issuing or providing a relationship between the MAC address received    and a port through which the MAC address was received to a data    plane to instruct data packet forwarding.

FIG. 3 is a flowchart 300 illustrating a method according to an exampleof the present disclosure. The example method depicted in FIG. 3 isapplied in a layer-2 interconnection network between data centersincluding at least two sites. In the layer-2 interconnection network,each ED is enabled with an ARP snooping function for snooping orcapturing all ARP messages forwarded by the ED. An ARP message may be anARP request message, an ARP response message, a gratuitous ARP messagebroadcasted by a host migrated to a new site, etc., which is notrestricted in the present disclosure.

Based on the above, the operations performed by each ED according to anexample of the present disclosure include the following.

At block 310 in FIG. 3, an ARP request message from a first node to asecond node is captured by the ED. One of the first node and the secondnode is a local node of the ED, while the other node is a remote node ofthe ED.

At block 320 in FIG. 3, the ED creates a session cache item in a controlplane of the ED based on the ARP request message from the first node tothe second node. The created session cache item includes:

-   (i) an IP address of the second node, that is a Target IP address of    the ARP request message;-   (ii) an IP address of the first node, that is a Sender IP address of    the ARP request message;-   (iii) Relationship (“first relationship”) between the MAC address of    the first node and its corresponding output port. The MAC address of    the first node is a Sender MAC address of the ARP request message    from the first node; and its corresponding output port is an output    port corresponding to the Sender MAC address of the ARP request    message.

For facilitating the description, in block 310, the output portcorresponding to the Sender MAC address of the ARP request message isalso referred to as a first output port. The first output port may be aport through which the ARP request message is received, such that amessage may be transmitted to the Sender MAC address through the port.The first output port may be a local port or a port corresponding to avirtual Ethernet link. For example:

-   If the ARP request message is broadcasted by a first node such as a    host or routing device located in a local site, the Sender MAC    address of the ARP request message is a local MAC address, and the    first output port corresponding to the Sender MAC address is a local    port.-   If the ARP request message is broadcasted by a first node such as a    host or routing device located in a remote site, the Sender MAC    address of the ARP request message is a remote MAC address, and the    first output port corresponding to the Sender MAC address is a port    corresponding to a virtual Ethernet link between a local ED and the    remote ED.

At block 330 in FIG. 3, an ARP response message from the second node tothe first node is captured.

At block 340 in FIG. 3, the session cache item having the IP address ofthe first node and the IP address of the second node is updated. Thesession cache item is updated to further include:

-   (v) Relationship (“second relationship”) between the MAC address of    the second node and its corresponding output port. The MAC address    of the second node is the Sender MAC address of the ARP response    message from the second node; and its corresponding output port is    the output port corresponding to the Sender MAC address of the ARP    response message.

Block 340 may include finding, in created session cache items, thesession cache item with the Target IP address and the Sender IP addressof the ARP response message before updating the found session cacheitem.

At block 350 in FIG. 3, the ARP response message is forwarded throughthe first output port in the session cache item, that is the output portcorresponding to the MAC address of the first node. Then block 360 isperformed.

The ARP response message from the second node to the first node inblocks 330 to 350 is a response to the ARP request message from thefirst node.

For facilitating the description, the output port corresponding to theSender MAC address of the ARP response message is referred to as asecond output port, in which the second output port may be a portthrough which the ARP response message was received, such that a messagemay be transmitted to the Sender MAC address of the ARP response messagethrough this port. Similar to the first output port, the second outputport may be a local port or a port corresponding to a virtual Ethernetlink. For example:

-   If the ARP response message is unicasted by a second node such as    host or routing device located in a local site, the Sender MAC    address of the ARP response message is a local MAC address and the    second output port corresponding to the Sender MAC address is a    local port.-   If the ARP response message is unicasted by a second node such as a    host or routing device located in a remote site, the Sender MAC    address of the ARP response message is a remote MAC address and the    second output port corresponding to the Sender MAC address is a port    corresponding to a virtual Ethernet link between a local ED and the    remote ED.

It may be seen from blocks 310 to 340 that, after the session cache itemis updated at block 340, one of the Sender MAC address of the ARPrequest message and the Sender MAC address of the ARP response messageis a local MAC address, the output port corresponding to the local MACaddress is a local port through which a local ED accesses the local MACaddress. The other is a remote MAC address of a remote site, and thecorresponding output port is a port corresponding to the virtualEthernet link between the local ED and the remote ED.

In other words, one of the first node and the second node is a localnode of the ED, while the other is a remote node of the ED, and as such:

-   One of the first relationship and the second relationship is between    a local MAC address and the output port corresponding to the local    MAC address, in which the output port is a local port that the edge    device accesses the local MAC address. And,-   The other relationship is between a remote MAC address and the    output port corresponding to the remote MAC address, in which the    output port is a port corresponding to a virtual Ethernet link    between the edge device and a remote edge device.

Further, consider the following example scenarios:

-   If the first node sending the ARP request message is a local node    and the second node sending the ARP response message is a remote    node of the ED, the first relationship is between the local MAC    address and its corresponding local output port; and the second    relationship is between the remote MAC address and its corresponding    Virtual Ethernet link.-   If the first node sending the ARP request message is a remote node    and the second node sending the ARP response message is a local node    of the ED, the first relationship is between the remote MAC address    and its corresponding Virtual Ethernet link; and the second    relationship is between the local MAC address and its corresponding    local port.

At block 360 in FIG. 3, the first relationship and the secondrelationship are provided to the data plane of the ED to facilitate datapacket forwarding between the first node and the second node.

In one example, at block 362, advertisement of MAC addresses is notperformed, in which case the first relationship and the secondrelationship in the session cache item are provided to the data plane.In this case, block 360 includes providing the following to the dataplane to facilitate data packet forwarding:

-   A corresponding relationship between the Sender MAC address of the    ARP request message and the first output port in the session cache    item, i.e. the first relationship. And,-   A corresponding relationship between the Sender MAC address of the    ARP response message and the second output port in the session cache    item, i.e. the second relationship.

In another example, at block 364, advertisement of addresses isperformed. As discussed, either the first node or the second node may bea local node of the ED, and the other is a remote node. The MAC addressof the local node is the local MAC address, and the MAC address of theremote node is the remote MAC address. In this case, block 364 includesthe following:

-   Advertising a local MAC address in the session cache item through    the output port corresponding to the remote MAC address in the    session cache item.-   Receiving a remote MAC address advertised by another ED.-   Providing the first relationship and the second relationship to the    data plane to facilitate data packet forwarding between the first    node and the second node.-   In this case, one of the first relationship and the second    relationship is a relationship between the local MAC address and an    output port corresponding to the local MAC address in the session    cache item, and the other relationship is a corresponding    relationship between the received remote MAC address and a port    through which the remote MAC address was received.

At block 364 in FIG. 3, the MAC address may be advertised by anysuitable protocol used for advertising MAC address such as ISIS. Thedistribution of the local MAC address through the output portcorresponding to the remote MAC address enables a peer ED of the virtualEthernet link of the output port to receive the MAC address beingadvertised.

In addition, at block 360 in FIG. 3, providing the first relationshipand the second relationship to the data plane is so as to create orstore MAC address items including the relationships in the data plane.

-   According to block 362, the corresponding relationship between the    Sender MAC address of the ARP request message and the first output    port in the session cache item (first relationship) and the    corresponding relationship between the Sender MAC address of the ARP    response message and the second output port in the session cache    item to the data plane (second relationship) are provided to the    data plane.-   According to block 364, one of the first relationship and the second    relationship is the corresponding relationship between the    advertised remote MAC address and the port through which the remote    MAC address was received.

It should be noted that, in blocks 310 and 320 in FIG. 3, the ARPrequest message from the first node to the second node initiates asession of MAC address learning. Since a response to the ARP requestmessage has not been captured yet, it may be regarded that the sessionis under establishment. After the ARP response message from the secondnode to the first node is captured, it may be regarded that the sessionof the MAC address learning has been established. For clarity, in thepresent disclosure, it is possible to configure the state of the sessioncache item in block 320 as a first state denoting that the MAC addresslearning session is under establishment. In this example, the firststate may be a connecting state. After the Sender MAC address of the ARPresponse message and the second output port are added in the sessioncache item at block 340, the first state of the session cache item maybe updated to a second state denoting that the MAC address learningsession has been established. In this example, the second state may be aconnected state.

In the following examples, the first state is referred to as theconnecting or under establishment state, and the second state theconnected or established state. Detailed descriptions will be given withreference to the examples in FIG. 4 and FIG. 5.

FIG. 4 is a schematic diagram 400 illustrating an example of the presentdisclosure according to blocks 310 to 360 and 364 (instead of 362) inFIG. 3. As shown in FIG. 4, each ED is enabled with an ARP snooping orcapturing function. In this example, host A (“first node”) needs tocommunicate with host B (“second node”). Since host A only knows the IPaddress of host B but not the MAC address of host B, host A needs tolearn the MAC address of host B to be able to communicate with host B.

An example method for learning the MAC address of host B is as follows.

Host A broadcasts an ARP request message; see 401 in FIG. 4. The TargetIP address of the ARP request is the IP address of host B (i.e. IP_B),the Sender IP address of the ARP request message is the IP address ofhost A (i.e. IP_A), and the Sender MAC address of the ARP request is theMAC address of host A, (i.e., MAC_A).

In FIG. 4, after the ARP request message is captured, each ED learns thecontents carried by the ARP request message in a control plane, createsa session cache item locally based on the description of block 320 inFIG. 3, and configures the state of the session cache item to theconnecting state. Thus, ED1, ED2, and ED3 in FIG. 4 each create asession cache item locally and identify the session cache item as theconnecting state (i.e. first state).

-   Based on the ARP request message, ED1 creates a session cache item    that includes: IP_A, IP_B, (MAC_A, Port1); see item 402 in FIG. 4.    Port1 is a local port through which the ARP request message was    captured by ED1.-   (MAC_A, Port1) denotes that MAC_A and Port1 have a corresponding    relationship (i.e. first relationship).-   Based on the ARP request message, ED2 creates a session cache item    that includes: IP_A, IP_B, (MAC_A, Link1); see 403 and 404 in    FIG. 4. Link1 denotes a port through which the ARP request message    was captured by ED2. (MAC_A, Link1) denotes that MAC_A and Link1    have a corresponding relationship (i.e. first relationship).-   Based on the ARP request message, ED3 creates a session cache item    created by ED3 includes: IP_A, IP_B, (MAC_A, Link2); see 403 and 405    in FIG. 4. Link2 is a port through which the ARP request message was    captured by ED3. (MAC_A, Link2) denotes that MAC_A and Link2 have a    corresponding relationship (i.e. first relationship).

From the above, it will be appreciated that from ED1's perspective, thefirst relationship is the relationship between a local MAC address(MAC_A) and its corresponding output port (local port Port1). From ED2and ED3's perspective, the first relationship is the relationshipbetween a remote MAC address (MAC_A) and its corresponding output port(Virtual Ethernet links Link1 and Link2 respectively).

After the ARP request message is captured, each ED in FIG. 4 willforward the ARP request message to hosts under the ED; see 406.

After the ARP request message is received, host B in FIG. 4 finds thatthe Target IP address of the ARP request is its IP address. Host Breturns an ARP response message such as by way of unicasting etc.; see407 in FIG. 4. The Target MAC address of the ARP response message isMAC_A, the Target IP address is IP_A, the Sender MAC address is MAC_B,and the Sender IP address is IP_B. Since the Target IP address is notthat of other hosts (such as host C), they do not respond to the ARPrequest message.

When ED3 in FIG. 4 captures the ARP response message 407 returned byhost B on Port1, ED3 finds a session cache item including the Sender IPaddress of the ARP response message (i.e. IP_B) and the Target IPaddress of the ARP response message (i.e. IP_A)in local session cacheitems. In this example the found session cache item is: IP_A, IP_B,(MAC_A, Link2); see session cache item 405 of ED3 in FIG. 4. ED3 thenupdates the found session cache item by adding: a second relationshipbetween the Sender MAC address of the ARP response message (i.e. MAC_B)and an output port corresponding to the Sender MAC address of the ARPresponse message (i.e. Port1). As such, the found session cache item isupdated to be: IP_A, IP_B, (MAC_A, Link2), (MAC_B, Port1). (MAC_A,Link2) and MAC_B, Port1) are referred to as the first relationship andthe second relationship in the session cache item 408 of ED3,respectively. At the same time, ED3 updates the state of the sessioncache item to the connected state (i.e. second state).

Then, ED3 transmits the ARP response message through the port (i.e.Link2) corresponding to the Target MAC address of the ARP responsemessage (i.e., MAC_A) in the session cache item of the connected state;see 408 and 409. Further, in this example, ED3 advertises the local MACaddress (i.e., MAC_B) through Link2, i.e., the port corresponding to theremote MAC address (i.e., MAC_A), in the session cache item of theconnected state using ISIS; see 410 in FIG. 4.

In FIG. 4, ED3 is connected with ED1 through the virtual Ethernet Link2.Therefore, ED1 will receive the ARP response message forwarded by ED3and the MAC_B advertised by ED3.

When the ARP response message is received from virtual Ethernet Link2,ED1 finds a session cache item including the Sender IP address and theTarget IP address of the ARP response message: IP_A, IP_B, (MAC_A,Port1); see item 402 again. ED1 then updates the found session cacheitem by adding: the Sender MAC address of the ARP response message(i.e., MAC_B), and an output port corresponding to the Sender MACaddress (i.e. Link2). As such, the found session cache item is updatedto be: IP_A, IP_B, (MAC_A, Port1), (MAC_B, Link2); see item 411. (MAC_A,Port1) and (MAC_B, Link2) are referred to as the first relationship andthe second relationship in the session cache item 411 of ED1,respectively. At the same time, ED1 updates the state of the sessioncache item to the connected state.

After ED1 updates the state of the session cache item to the connectedstate, if ED1 receives the MAC_B advertised by ED3 using ISIS throughvirtual Ethernet Link2, ED1 provides relationship (MAC_B, Link2) to thedata plane to facilitate data packet forwarding between host A and hostB. In this example, ED1 adds an item 412 in a MAC address forwardingtable in the data plane that includes VPN1, the MAC address of remotenode B (i.e. MAC_B) and the output port corresponding to MAC_B (i.e.Link2), as shown in the MAC address forwarding table of ED1 in FIG. 4.At the same time, ED1 advertises the local MAC address (i.e. MAC_A) inthe session cache item through the output port corresponding to theremote MAC address (i.e. Link2) using ISIS; see 413. In addition, ED1also forwards the ARP response message through the port (i.e. Port1),which corresponds to the Target MAC address (i.e. MAC_A) of the ARPresponse message.

In FIG. 4, ED1 is connected with ED3 through the virtual Ethernet Link2.Therefore, ED3 will receive the remote MAC address (i.e. MAC_A)advertised by ED1, as indicated at 413 in FIG. 4. After MAC_A advertisedby ED1 using ISIS is received through Link2, ED3 provides relationship(MAC_A, Link2) to the data plane to facilitate data packet forwardingbetween host A and host B. In this example, ED3 creates or stores anitem 414 in the MAC address forwarding table in the data plane thatincludes VPN1, the remote MAC address of host A (i.e. MAC_A) and theoutput port corresponding to MAC_A (i.e. Link2), as shown in the MACaddress forwarding table of ED3 in FIG. 4.

From the above, at ED1, host A is a local node and host B is a remotenode. The first relationship (MAC_A, Port1) provided to the data planeis the relationship between the local MAC address and its correspondinglocal port Port1. The second relationship (MAC_B, Link2) is therelationship between the remote MAC address and its correspondingVirtual Ethernet link. ED1 receives the remote MAC address (i.e. MAC_B)advertised by ED3 at 410 in FIG. 4, and advertises the local MAC address(i.e. MAC_A) to ED3 at 413 in FIG. 4.

On the other hand, at ED3, host B is a local node and host A is a remotenode. The first relationship (MAC_A, Link2) provided to the data planeis the relationship between the remote MAC address and its correspondingVirtual Ethernet link. The second relationship (MAC_B, Port1) is therelationship between the local MAC address and its corresponding localport. ED3 advertises the local MAC address (i.e. MAC_B) to ED1 at 410 inFIG. 4, and receives the remote MAC address (i.e. MAC_A) advertised byED1 at 413 in FIG. 4.

In FIG. 4, host A is connected with ED1 through Port1. Therefore, host Awill receive the ARP response message. After the ARP response message isreceived, host A knows the MAC address of host B. Thereafter, data flowsbetween host A and host B may be forwarded according to the MAC address.

Now, the method for learning the MAC address of host B is finished.

According to the example in FIG. 4, during the procedure of learning theMAC address of host B, ED2 is not related to host A and host B, whichreally need to communicate with each other. Therefore, ED2 merelycreates a session cache item in the connecting state; see item 404 ofED2. ED2 will not advertise the MAC address in the session cache item ofthe connecting state to other sites using ISIS. Compared with theconventional systems, the examples disclosed herein improve theutilization ratio of MAC address item resources of the ED and reducesunnecessary occupation of MAC address items.

In FIG. 4, one ED advertises the MAC address after the state of thesession cache item is updated to the second state (i.e. connectedstate), such that other EDs may create a MAC address item according tothe advertised MAC address.

As an extension of FIG. 4, in the present disclosure, after the state ofthe session cache item is updated to further include the secondrelationship and its state to the connected state, the ED may notadvertise the MAC address. Instead, the ED directly provides the MACaddress and the output port in the session cache item to the data planeto instruct the data packet forwarding, as shown in FIG. 5.

FIG. 5 is a schematic diagram 500 illustrating another example of thepresent disclosure according to blocks 310 to 360 and 362 (instead of364) in FIG. 3. As shown in FIG. 5, each ED is enabled with the ARPsnooping function. Similar to FIG. 4, host A needs to learn the MACaddress of host B to communicate with host B. 501 to 509 in FIG. 5correspond to 401 to 409 in FIG. 4 respectively, and their discussion isnot repeated here.

The difference between the MAC address learning method shown in FIG. 5and that shown in FIG. 4 is that: in FIG. 5, after one ED, such as ED3or ED1, updates the session cache item to the connected state, the EDdoes not advertise the MAC address but directly provides the MACaddresses and the output ports in the session cache item to the dataplane, so as to create or store MAC address items in the data plane tofacilitate data packet forwarding between host A and host B.Hereinafter, ED3 is taken as an example. The discussion is similar forED1.

After the session cache item is updated to the connected state (see 508in FIG. 5), ED3 does not advertise the local MAC address in the sessioncache item (i.e. MAC_B) through the output port (i.e. Link2) thatcorresponds to the remote MAC address (i.e. MAC_A). Instead, ED3directly provides the following to the data plane:

-   (i) a first relationship (MAC_A, Link2), that is the relationship    between the remote Sender MAC address MAC_A and the output port    Link2 of the ARP request message in the session cache item 508; and-   (ii) a second relationship (MAC_B, Port1), that is the relationship    between the local Sender MAC address MAC_B and the output port Port1    of the ARP response message in the session cache item 508 in the    connected state.    The above are provided to the data plane to create a MAC address    item of ED3 to facilitate data packet forwarding between host A and    host B; see 510 in FIG. 5.

Similarly, ED1 directly provides the following to the data plane:

-   (i) a first relationship (MAC_A, Port1), that is the relationship    between the local Sender MAC address MAC_A and the output port Port1    of the ARP request message in the session cache item 511; and-   (ii) a second relationship (MAC_B, Link2), that is the relationship    between the remote Sender MAC address MAC_B and the output port    Link2 of the ARP response message in the session cache item 511 in    the connected state.    The above are provided to the data plane to create a MAC address    item of ED1 to facilitate data packet forwarding between host A and    host B; see 512 in FIG. 5.

According to the example in FIG. 5, during the procedure of learning theMAC address of host B, ED2 is not related to host A and host B, whichreally need to communicate with each other. Therefore, ED2 merelycreates a session cache item in the connecting state; see 504 in FIG. 5.In FIG. 5, after the session cache item is updated with the secondrelationship and its state to the connected state, the firstrelationship and second relationship (MAC addresses and the outputports) in the session cache item are provided to the data plane tocreate the MAC address item in the data plane. As such, ED2 will notcreate any MAC address item about the session cache item of theconnecting state. As such, the examples disclosed herein improve theutilization ratio of MAC address item resources of the ED and reduceunnecessary occupation of MAC address items.

Host Migration

It should be noted that, since the host that the ED of each siteaccesses may migrate among different sites, each ED may further performthe following operations.

-   Receive a gratuitous ARP message broadcasted by a migrated host, in    which each ED is enabled with the ARP snooping function and is able    to capture the gratuitous ARP message, and the gratuitous ARP    message is transmitted after the host is migrated successfully.-   Find, in local session cache items, a session cache item containing    an IP address of the migrated host.-   If the found session cache item is currently configured to a first    state, such as a connecting state, update the found session cache    item according to the port through which the gratuitous ARP message    was received. In the latter case, updating the found session cache    item includes:    -   (i) if the found session cache item does not contain the MAC        address of the migrated host, add the MAC address of the        migrated host and the output port corresponding to the MAC        address of the migrated host in the found session cache item,        and update the session cache item to the second state;    -   (ii) otherwise, if the found session cache item contains the MAC        address of the migrated host, update the output port        corresponding to the MAC address of the migrated host in the        session cache item to the port through which the gratuitous ARP        message was received.        If the found session cache item is currently configured to the        second state, such as a connected state, delete the found        session cache item if the migrated host is located in a local        site; and update the found session cache item if the migrated        host is located in a remote site. In the latter case, updating        the found session cache item includes:    -   (i) if the output port corresponding to the MAC address of the        migrated host in the session cache item is a local port, delete        the found session cache item;    -   (ii) if the output port corresponding to the MAC address of the        migrated host in the found session cache item is a port        corresponding to a virtual Ethernet link, update the output port        corresponding to the MAC address of the migrated host in the        session cache item to the port corresponding to the virtual        Ethernet link through which the gratuitous ARP message was        received.

Timers

It should be noted that, in order to save resources, in the presentdisclosure, each ED may further perform the following operations.

When the state of the session cache item is configured to the firststate, start a first timer corresponding to the session cache item foridentifying the first state of the session cache item.

When the state of the session cache item is updated from the first stateto the second state, stop the first timer, and start a second timercorresponding to the session cache item for identifying the second stateof the session cache item.

If any one of the first timer and the second timer expires, delete thesession cache item corresponding to the timer. The expiry time of thefirst timer and that of the second timer are irrelevant with respect toeach other.

EXAMPLE STRUCTURES OF EDGE DEVICE

FIG. 6 is a schematic diagram illustrating a structure of an EDaccording to an example of the present disclosure. As shown in FIG. 6,the ED may include a first capturing module 61 to:

-   Capture an ARP request message from a first node to a second node.-   Create, in a control plane of the ED, a session cache item    containing the following contents:    -   an IP address of the second node, that is a Target IP address of        the ARP request message,    -   an IP address of the first node, that is a Sender IP address of        the ARP request message, and    -   a first relationship between a MAC address of the first node        (that is, a Sender MAC address of the ARP request message), and        an output port corresponding to the MAC address of the first        node (that is, an output port corresponding to the Sender MAC        address).

The ED may also include a second capturing module 62 to capture an ARPresponse message from the second node to the first node.

The second capturing module 62 is further to: update the session cacheitem having the IP address of the first node (that is, a Target IPaddress of the ARP response message) and the IP address of the secondnode (that is, a Sender IP address of the ARP response message) tofurther include:

-   a second relationship between a MAC address of the second node (that    is, a Sender MAC address of the ARP response message) and an output    port corresponding to the MAC address of the second node (that is,    an output port corresponding to the MAC address of the ARP response    message).    In this case, the second capturing module 62 may be further to find,    in created session cache items, the session cache item with the    Target IP address and the Sender IP address of the ARP response    message before updating the found session cache item.

The second capturing module 62 is further to: forward the ARP responsemessage through the output port corresponding to the MAC address of thefirst node in the session cache item (that is, Sender MAC address of theARP request message). And,

The second capturing module 62 is further to: transmit a notification toa first processing module 63.

The first processing module 63 is to: provide the first relationship andthe second relationship to a data plane of the ED to facilitate datapacket forwarding between the first node and the second node.

In one example, the first relationship and the second relationship inthe session cache item are provided by the first processing module 63 tothe data plane to facilitate data packet forwarding between the firstnode and the second node. In this case, the first processing module 63provides, after the notification is received from the second capturingmodule 62, the following to the data plane:

-   a relationship, being a first relationship, between the Sender MAC    address and the output port of the ARP request message; and-   a relationship, being a second relationship, between the Sender MAC    address and the output port of the ARP response message in the    session cache item.

In another example, the first processing module 63 provides the firstrelationship and the second relationship to a data plane, as follows:

-   Advertise a local MAC address in the session cache item through an    output port corresponding to a remote MAC address in the session    cache item.-   Receive a remote MAC address advertised by another ED. And,-   Provide the first relationship and the second relationship to the    data plane to facilitate data packet forwarding. In this case, one    of the first relationship and the second relationship is a    relationship between the local MAC address and an output port    corresponding to the local MAC address in the session cache item,    and the other is a relationship between the remote MAC address    received and a port through which the remote MAC address was    received.

The modules in the present disclosure may be implemented by software(e.g., machine readable instructions stored in a memory and executableby a processor), hardware (e.g., the processor of an ASIC), or acombination thereof. The session cache items and MAC address table maybe stored in the memory.

One of the Sender MAC address of the ARP request message and the SenderMAC address of the ARP response message in the session cache itemprocessed by the first processing module 63 is the local MAC address,and the output port corresponding to the local MAC address is a localport through which a local ED accesses the local MAC address. The otheris the remote MAC address accessed by a remote ED. An output portcorresponding to the remote MAC address is a port corresponding to avirtual Ethernet link between the local ED and the remote ED.

In other words, one of the first node and the second node is a localnode of the edge device, while the other is a remote node of the edgedevice, and as such:

-   One of the first relationship and the second relationship is between    a local MAC address, and the output port corresponding to the local    MAC address, in which the output port is a local port that the edge    device accesses the local MAC address.-   The other relationship is between a remote MAC address, and the    output port corresponding to the remote MAC address, in which the    output port is a port corresponding to a virtual Ethernet link    between the edge device and a remote edge device.

In this example, the first capturing module 61 is further to:

-   configure a state of the session cache item to a first state after    the session cache item is created, so as to indicate that the MAC    address learning session is under establishment; and-   after the Sender MAC address and the output port of the ARP response    message are added to the session cache item, configure the state of    the session cache item to a second state, so as to indicate that the    MAC address learning session has been established, in which the    session cache item processed by the first processing module 63 is    the session cache item in the second state.

In this example, and as shown in FIG. 6, the ED further includes asecond processing module 64, a first updating module 65, a secondupdating module 66, and a timer controlling module 67.

The second processing module 64 is to receive a gratuitous ARP messagebroadcasted by a migrated node or host and find a session cache itemcontaining an IP address of the migrated host from local session cacheitems. If the found session cache item is currently configured to thefirst state, the second processing module 64 is to transmit a firstupdate notification to the first updating module 65. If the foundsession cache item is currently configured to the second state, thesecond processing module 64 is to transmit a second update notificationto the second updating module 66.

The first updating module 65 is to update, after the first updatenotification is received, the found session cache item according to theport through which the gratuitous ARP message was received. If thesession cache item found does not contain the MAC address of themigrated host, the first updating module 65 is to add the MAC address ofthe migrated host and the output port corresponding to the MAC addressof the host in the found session cache item, update the session cacheitem to the second state, and trigger the first processing module 63 toperform a corresponding operation. If the found session cache itemcontains the MAC address of the host, the first updating module 65 is toupdate the output port corresponding to the MAC address of the host inthe session cache item to the port through which the gratuitous ARPmessage was received.

The second updating module 66 is to, after the second updatenotification is received, if the migrated host is currently local siteaccessed, delete the session cache item found; and if the migrated hostis currently remote site accessed, update the found session cache itemfound. The found session cache item is updated by the second updatingmodule 66 by: if the output port corresponding to the MAC address of thehost in the session cache item is a local port, delete the found sessioncache item; if the output port corresponding to the MAC address of themigrated host in the found session cache item is a port corresponding toa virtual Ethernet link, update the output port corresponding to the MACaddress of the migrated host in the session cache item to the portcorresponding to the virtual Ethernet link through which the gratuitousARP message was received.

The timer controlling module 67 is to start, when the state of thesession cache item is configured to the first state, a first timercorresponding to the session cache item which is used for identifyingthe first state of the session cache item. The timer controlling module67 is also to stop, when the state of the session cache item is updatedfrom the first state to the second state, the first timer, and start asecond timer corresponding to the session cache item, which is used foridentifying the second state of the session cache item. The timercontrolling module 67 is further to delete, if any one of the firsttimer and the second timer expires, the session cache item correspondingto the timer, in which the expiring time of the first timer and that ofthe second timer are irrelevant with respect to each other.

Now, the description to the structure of the edge device provided by theexample of the present disclosure is finished.

Hereinafter, a structure of an ED in a wireless network will bedescribed according to an example of the present disclosure. The ED is aprogrammable device containing a combination of software and hardware,as shown in FIG. 7. The ED includes a processor to communicate with amemory and execute instructions in the memory. The memory is to storethe instructions, in which the instructions are executed by theprocessor to perform all the operations of the ED as described above,which will not be repeated herein. The ED also includes line cards, eachof which is to connect the ED to a network through an interface on theline card, in which the interface may be an Ethernet interface, a DSLinterface, a Gigabit Ethernet interface, etc. The ED further includes amessage storage to cache messages transmitted by the ED when the EDreceives, processes, and forwards the messages, such that the EDprocesses the message in the message storage after an operation to themessage is finished.

The memory is a machine-readable medium, including but not restricted tofloppy disk, hard disk, compact disk (such as CD-ROM, CD-R, CD-RW,DVD-ROM, DVD-RAM, DVD-RW, DVD+RW), tape, non-volatile memory card, ROM,etc.

It should be noted that, the ED shown in FIG. 7 is merely an example.The ED may also be implemented on a device with a structure differentfrom this example, which is not restricted in the present disclosure.The processor is to perform the operations discussed with reference toFIG. 3 to FIG. 6, including all operations by the first capturing module61, second capturing module 62, first processing module 63, secondprocessing module 64, timer controlling module 67, first updating module65 and second updating module 66 in FIG. 6.

It may be seen from the description above that, in the presentdisclosure, after an ARP response message is captured, an ED finds,among local session cache items, the session cache item having the IPaddress of the first node and the IP address of the second node isupdated.

The ED then provides the first relationship and the second relationshipto a data plane of the edge device to facilitate data packet forwardingbetween the first node and the second node. According to examples in thepresent disclosure, EDs that are irrelevant to a communication betweentwo nodes do not have to receive unnecessary MAC addresses. Thisincreases the utilization ratio of MAC address item resources of the EDand reduces occupation by irrelevant MAC address items.

What has been described and illustrated herein is an example of thedisclosure along with some of its variations. The terms, descriptionsand figures used herein are set forth by way of illustration only andare not meant as limitations. Many variations are possible within thespirit and scope of the disclosure, which is intended to be defined bythe following claims—and their equivalents—in which all terms are meantin their broadest reasonable sense unless otherwise indicated.

The above examples may be implemented by hardware, software, firmware,or a combination thereof. For example the various methods, processes andfunctional modules described herein may be implemented by a processor(the term processor is to be interpreted broadly to include a CPU,processing unit, ASIC, logic unit, or programmable gate array, etc.).The processes, methods and functional modules may all be performed by asingle processor or split between several processors; reference in thisdisclosure or the claims to a ‘processor’ should thus be interpreted tomean ‘one or more processors’. The processes, methods and functionalmodules be implemented as machine readable instructions executable byone or more processors, hardware logic circuitry of the one or moreprocessors or a combination thereof. Further, the examples disclosedherein may be implemented in the form of a software product. Thecomputer software product is stored in a non-transitory storage mediumand comprises a plurality of instructions for making a computer device(which may be a personal computer, a server or a network device, such asa router, switch, access point, etc.) implement the method recited inthe examples of the present disclosure.

The figures are only illustrations of an example, in which the modulesor procedures shown in the figures are not necessarily essential forimplementing the present disclosure. The modules in the aforesaidexamples may be combined into one module or further divided into aplurality of sub-modules.

1.-15. (canceled)
 16. A method for learning a Medium Access Control(MAC) address, applied in a hardware component, the method comprising:based on a receipt of a request message from a first node to a secondnode, creating by the hardware component a session cache item, whereinthe session cache item includes a first relationship between a MACaddress of the first node and a first port of an edge device throughwhich the request message was received; based on a receipt of a responsemessage from the second node to the first node, updating, by thehardware component, the session cache item, wherein the updated sessioncache item further includes a second relationship between a MAC addressof the second node and a second port of the edge device through whichthe response message was received; and forwarding data packets betweenthe first node and the second node using the first relationship and thesecond relationship.
 17. The method of claim 16, further comprising:forwarding, by the hardware component, the response message to the firstnode via the first port indicated in the session cache item.
 18. Themethod of claim 16, further comprising: advertising a local MAC addressin the session cache item through the first port in the session cacheitem; receiving a remote MAC address advertised by another hardwarecomponent; and providing the first relationship and the secondrelationship to a data plane of the hardware component to facilitatedata packet forwarding between the first node and the second node. 19.The method of claim 16, further comprising: after the session cache itemis created to include the first relationship, changing the session cacheitem to a first state indicating that a MAC address learning session isunder establishment; and after the session cache item is updated withthe second relationship, updating the session cache item from the firststate to a second state indicating that the MAC address learning sessionhas been established, wherein the first relationship and the secondrelationship are provided to a data plane of the hardware component whenthe session cache item is in the second state.
 20. The method of claim19, further comprising: receiving a message broadcasted by a migratednode; finding, in local session cache items, a session cache itemcontaining an IP address of the migrated node; and responsive to thefound session cache item being in the first state, updating the foundsession cache item according to a port through which the message fromthe migrated node was received, and responsive to the found sessioncache item being in the second state, deleting the found session cacheitem in response to the migrated node being currently a local node ofthe hardware component, and updating the found session cache item inresponse to the migrated node being currently a remote node of thehardware component.
 21. The method of claim 20, wherein updating thefound session cache item according to the port through which the messagefrom the migrated node was received comprises: responsive to adetermination that the found session cache item does not contain a MACaddress of the migrated node, adding the MAC address of the migratednode and an output port corresponding to the MAC address of the migratednode in the found session cache item, and updating the session cacheitem to the second state; and responsive to a determination that thefound session cache item contains the MAC address of the migrated node,updating the output port corresponding to the MAC address of themigrated node in the session cache item to the port through which themessage was received.
 22. The method of claim 20, wherein the updatingthe session cache item in response to the migrated node being currentlya remote node of the hardware component comprises: in response to adetermination that an output port corresponding to a MAC address of themigrated node in the found session cache item is a local port, deletingthe found session cache item; and in response to a determination thatthe output port corresponding to the MAC address of the migrated node inthe found session cache item is a port corresponding to a link betweenthe hardware component and a remote hardware component, updating theoutput port corresponding to the MAC address of the migrated node in thesession cache item to the port corresponding to the link receiving themessage.
 23. The method of claim 19, further comprising: when thesession cache item is changed to the first state, starting a first timerof the session cache item to indicate that the session cache item is inthe first state; when the session cache item is updated from the firststate to the second state, stopping the first timer, and starting asecond timer of the session cache item to indicate that the sessioncache item is in the second state; and in response to a determinationthat the first timer or the second timer expires, deleting the sessioncache item corresponding to the timer that expires, wherein an expirytime of the first timer is irrelevant to an expiry time of the secondtimer.
 24. A hardware component comprising: a first hardware capturingunit to capture a request message sent from a first node to a secondnode, and create a session cache item based on the captured requestmessage, wherein the session cache item includes a first relationshipbetween a Medium Access Control (MAC) address of the first node and afirst port of an edge device through which the request message wasreceived; a second hardware capturing unit to capture a response messagesent from the second node to the first node, and update the sessioncache item based on the captured response message, wherein the updatedsession cache item further includes a second relationship between a MACaddress of the second node and a second port of the edge device throughwhich the response message was received; and a forwarding unit toforward data packets between the first node and the second node usingthe first relationship and the second relationship.
 25. The hardwarecomponent of claim 24, wherein the instructions are to cause theprocessor to forward the response message to the first node via thefirst port indicated in the session cache item.
 26. The hardwarecomponent of claim 24, wherein the instructions are further to cause theprocessor to: advertise a local MAC address in the session cache itemthrough a port in the session cache item; receive a remote MAC addressadvertised by another hardware component; and provide the firstrelationship and the second relationship to a data plane of the hardwarecomponent to facilitate data packet forwarding between the first nodeand the second node.
 27. The hardware component of claim 24, wherein theinstructions are further to cause the processor to: after the sessioncache item is created to include the first relationship, change thesession cache item to a first state indicating that a MAC addresslearning session is under establishment; and after the session cacheitem is updated with the second relationship, update the session cacheitem from the first state to a second state indicating that the MACaddress learning session has been established, wherein the firstrelationship and the second relationship are provided to a data plane ofthe hardware component when the session cache item is in the secondstate.
 28. The hardware component of claim 27, wherein the instructionsare further to cause the processor to: receive a message broadcasted bya migrated node; find, in local session cache items, a session cacheitem containing an IP address of the migrated node; and responsive to adetermination that the found session cache item is in the first state,update the found session cache item according to a port through whichthe message from the migrated node was received, and responsive to adetermination that the found session cache item is in the second state,delete the found session cache item in response to the migrated nodebeing currently a local node of the hardware component, and update thefound session cache item in response to the migrated node beingcurrently a remote node of the hardware component.
 29. A non-transitorycomputer readable medium storing instructions that when executed by aprocessor cause a hardware component to: based on a receipt of a requestmessage from a first node to a second node, create a session cache item,wherein the session cache item includes a first relationship between aMedium Access Control (MAC) address of the first node and a first portof an edge device through which the request message was received; basedon a receipt of a response message from the second node to the firstnode, update the session cache item, wherein the updated session cacheitem further includes a second relationship between a MAC address of thesecond node and a second port of the edge device through which theresponse message was received; and forward data packets between thefirst node and the second node using the first relationship and thesecond relationship.
 30. The non-transitory computer readable medium ofclaim 29, wherein the instructions are further to cause the processorto: advertise a local MAC address in the session cache item through aport in the session cache item; receive a remote MAC address advertisedby another hardware component; and provide the first relationship andthe second relationship to a data plane of the hardware component tofacilitate data packet forwarding between the first node and the secondnode.
 31. The non-transitory computer readable medium of claim 29,wherein the instructions are further to cause the processor to: afterthe session cache item is created to include the first relationship,change the session cache item to a first state indicating that a MACaddress learning session is under establishment; and after the sessioncache item is updated with the second relationship, update the sessioncache item from the first state to a second state indicating that theMAC address learning session has been established, wherein the firstrelationship and the second relationship are provided to a data plane ofthe hardware component when the session cache item is in the secondstate.
 32. The non-transitory computer readable medium of claim 31,wherein the instructions are further to cause the processor to: receivea message broadcasted by a migrated node; find, in local session cacheitems, a session cache item containing an IP address of the migratednode; and responsive to a determination that the found session cacheitem is in the first state, update the found session cache itemaccording to a port through which the message from the migrated node wasreceived, and responsive to a determination that the found session cacheitem is in the second state, delete the found session cache item inresponse to the migrated node being currently a local node of thehardware component, and update the found session cache item in responseto the migrated node being currently a remote node of the hardwarecomponent.
 33. The non-transitory computer readable medium of claim 32,wherein to update the found session cache item according to the portthrough which the message from the migrated node was received, theprocessor is to: responsive to a determination that the found sessioncache item does not contain a MAC address of the migrated node, add theMAC address of the migrated node and an output port corresponding to theMAC address of the migrated node in the found session cache item, andupdating the session cache item to the second state; and responsive to adetermination that the found session cache item contains the MAC addressof the migrated node, update the output port corresponding to the MACaddress of the migrated node in the session cache item to the portthrough which the message was received.
 34. The non-transitory computerreadable medium of claim 32, wherein to update the session cache item inresponse to the migrated node being currently a remote node of thehardware component, the processor is to: in response to a determinationthat an output port corresponding to a MAC address of the migrated nodein the found session cache item is a local port, delete the foundsession cache item; and in response to a determination that the outputport corresponding to the MAC address of the migrated node in the foundsession cache item is a port corresponding to a link between thehardware component and a remote hardware component, update the outputport corresponding to the MAC address of the migrated node in thesession cache item to the port corresponding to the link receiving themessage.
 35. The non-transitory computer readable medium of claim 31,wherein the instructions further cause to the processor to: in responseto a determination that the session cache item is changed to the firststate, start a first timer of the session cache item to indicate thatthe session cache item is in the first state; in response to adetermination that the session cache item is updated from the firststate to the second state, stop the first timer, and start a secondtimer of the session cache item to indicate that the session cache itemis in the second state; and in response to a determination that thefirst timer or the second timer expires, delete the session cache itemcorresponding to the timer that expires, wherein an expiry time of thefirst timer is irrelevant to an expiry time of the second timer.